﻿
//进入战场（服务端推送）
public class MsgEnterBattle : MsgBase
{
    public MsgEnterBattle()
    {
        protoName = "MsgEnterBattle";
    }

    //服务端回
    public string[] pIds;
    public string first; //先手玩家
    public int rules = 0;
    public int[] extras; //抽取的贵族/城市
    public int[] minesLv1; //打乱后的顺序
    public int[] minesLv2;
    public int[] minesLv3;
}

//战斗结果（服务端推送）
public class MsgBattleResult : MsgBase
{
    public MsgBattleResult()
    {
        protoName = "MsgBattleResult";
    }

    //服务端回
    public string pId = ""; //获胜的玩家
}

//玩家退出（服务端推送）
public class MsgLeaveBattle : MsgBase
{
    public MsgLeaveBattle()
    {
        protoName = "MsgLeaveBattle";
    }

    //服务端回
    public string pId = ""; //玩家id
}

//最后一个回合 (服务端推送)
public class MsgEnterLastTurn : MsgBase
{
    public MsgEnterLastTurn()
    {
        protoName = "MsgEnterLastTurn";
    }
}

//下一个回合的玩家
public class MsgEndTurn : MsgBase
{
    public MsgEndTurn()
    {
        protoName = "MsgEndTurn";
    }

    //服务端回
    public string pId = ""; //下一回合的玩家id
}

//同步选择的宝石
public class MsgSelectGemstone : MsgBase
{
    public MsgSelectGemstone()
    {
        protoName = "MsgSelectGemstone";
    }

    //客户端发
    public int operate = 0; //0为取消选中 1为选中 
    public int type = -1; //Gemstone类型 枚举类型之间的转换
}

//同步选择的矿场
public class MsgSelectMine : MsgBase
{
    public MsgSelectMine()
    {
        protoName = "MsgSelectMine";
    }

    //客户端发
    public int operate = 0; //0为取消选中 1为选中 
    public int lv = 0; //Mine等级 1-3
    public int sId = -1; //空闲Mine的四个槽id 1-4
}

public class MsgSelectMineBack : MsgBase
{
    public MsgSelectMineBack()
    {
        protoName = "MsgSelectMineBack";
    }

    //客户端发
    public int operate = 0; //0为取消选中 1为选中 
    public int lv = 0; //Mine等级 1-3
}

//玩家取得宝石
public class MsgAcquireGemstone : MsgBase
{
    public MsgAcquireGemstone()
    {
        protoName = "MsgAcquireGemstone";
    }

    //服务端补充
    public string pId = ""; //玩家id

    //客户端发送
    public int[] types; //Gemstone类型 枚举类型之间的转换
}

//玩家还回宝石
public class MsgReturnGemstone : MsgBase
{
    public MsgReturnGemstone()
    {
        protoName = "MsgReturnGemstone";
    }

    //服务端补充
    public string pId = ""; //玩家id

    //客户端发送
    public int[] types; //Gemstone类型 枚举类型之间的转换
}

public class MsgPurchaseMine : MsgBase
{
    public MsgPurchaseMine()
    {
        protoName = "MsgPurchaseMine";
    }

    //服务端补充
    public string pId = ""; //玩家id

    //客户端发送
    public int lv = 0; //Mine等级 1-3
    public int sId = -1; //空闲矿场的四个槽的id 1-4
    public int mId = 0; //矿场Id
    //购买预留的矿场时 lv设为-1
    //sId为该矿场的id，而非槽id
}

public class MsgReserveMine : MsgBase
{
    public MsgReserveMine()
    {
        protoName = "MsgReserveMine";
    }
    
    //服务端补充
    public string pId = "";

    //客户端发送
    public int lv = 0; //Mine等级 1-3
    public int sId = -1; //空闲矿场的四个槽的id 1-4
    public int mId = 0; //矿场Id
    //购买预留的矿场时 lv设为-1
    //sId为该矿场的id，而非槽id
}

//城市/贵族达成条件
public class MsgExtraCollect : MsgBase
{
    public MsgExtraCollect()
    {
        protoName = "MsgExtraCollect";
    }

    //服务端补充
    public string pId = ""; //玩家id

    //客户端发送
    public int sId = 0; //达成条件的槽id
    public int eId = 0; //贵族/城市Id
}

public class MsgCheckData : MsgBase
{
    public MsgCheckData()
    {
        protoName = "MsgCheckData";
    }

    //服务端补充
    public int result = 0;

    //客户端发送
    public int[] gemstones;
    public int nobles = 0;
    public int[] bonus;
    public int point = 0;
}